//
//  PGWelcomeViewController.swift
//  PGWeibo
//
//  Created by Apple on 15/11/8.
//  Copyright © 2015年 Apple. All rights reserved.
//

import UIKit
import SDWebImage
class PGWelcomeViewController: UIViewController {
// 设置界面，视图的层次结构
    override func loadView() {
        view = backView;
        
        setupUI()
    }
    // 视图加载完成之后的后续处理，通常用来设置数据
    override func viewDidLoad() {
        super.viewDidLoad()
        iconView.sd_setImageWithURL(PGUserAccountViewModel.sharedUerAccountViewModel.avatarUrl, placeholderImage: UIImage(named: "avatar_default_big"))
       
    }
    // 视图已经显示，通常可以动画／键盘处理
    override func viewDidAppear(animated: Bool) {
        super.viewWillAppear(animated)
        setupAnim()
    }
    
    private func setupAnim() {
        // 1. 更改约束 -> 改变位置
        // snp_updateConstraints 更新已经设置过的约束
        // multiplier 属性是只读属性，创建之后，不允许修改
        /**
        使用自动布局开发，有一个原则：
        - 所有`使用约束`设置位置的控件，不要再设置 `frame`
        
        * 原因：自动布局系统会根据设置的约束，自动计算控件的 frame
        * 在 layoutSubviews 函数中设置 frame
        * 如果程序员主动修改 frame，会引起 自动布局系统计算错误！
        
        - 工作原理：当有一个运行循环启动，自动布局系统，会`收集`所有的约束变化
        - 在运行循环结束前，调用 layoutSubviews 函数`统一`设置 frame
        - 如果希望某些约束提前更新！使用 `layoutIfNeeded` 函数让自动布局系统，提前更新当前收集到的约束变化
        */
        welcomeLabel.alpha = 0
        iconView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(self.view.snp_bottom).offset(-view.bounds.height + 200)
        }
        
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 10, options: [], animations: { () -> Void in
                //强制布局
                self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                
                UIView.animateWithDuration(0.5, animations: { () -> Void in
                    self.welcomeLabel.alpha = 1
                    }, completion: { (_) -> Void in
                        NSNotificationCenter.defaultCenter().postNotificationName(PGSwitchRootControllerNotification, object: nil)
                })
        }
    }
    //懒加载
    private lazy var backView: UIImageView = UIImageView(image: UIImage(named: "ad_background"))
    private lazy var iconView: UIImageView = {
        let iv = UIImageView(image: UIImage(named: "avatar_default_big"))
        iv.layer.cornerRadius = 45
        iv.layer.masksToBounds = true
        return iv
    }()
    
    private lazy var welcomeLabel: UILabel = UILabel(title: "欢迎归来", color: UIColor.blackColor(), textFont: 18)
}
// MARK: - 设置界面
extension PGWelcomeViewController {
    private func setupUI() {
        view.addSubview(iconView)
        view.addSubview(welcomeLabel)
        
        //设置约束
        iconView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(self.view.snp_centerX)
            make.bottom.equalTo(self.view.snp_bottom).offset(-200)
            make.width.equalTo(90)
            make.height.equalTo(90)
        }
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(self.iconView.snp_centerX)
            make.top.equalTo(self.iconView.snp_bottom).offset(16)
        }
    }
}
